在介紹完 while 迴圈的三個樣子之後,緊接著當然是對這三個樣子作範例囉!這次的範例應該會有趣一些~
while] 迴圈能有什麼樣的應用呢?其實應用非常多,而且很常用到。
比如說,我想執行一個測試程式,我希望他跑個10小時,那該怎麼做?
當然就是用 while 啦!
比如說我想要編輯一份文件,在文件中若出現關鍵字,我就需要根據那關鍵字查詢對應表,在接著將查到的結果插入該文件關鍵字那行之下,也是可以用 while 來達成。
以下就根據昨天介紹的三個 while樣式來寫三個例子吧。
第一種:在條件成立時,就會不斷執行迴圈內容
#!/bin/bash
echo -n "請問你要幾個[妹]:"
read MA
INDEX=1
# 當條件成立,就會不斷執行(le表示小於或等於)
while [ $INDEX -le $MA ]
do
# 輸出 妹
echo -n "妹 "
# INDEX 的值會加1
(( INDEX++ ))
done
echo ""
echo "已經給你 $MA 個妹囉 了!"
執行結果:
第二種:無窮迴圈,直到外力介入才會停止
(在這次的範例中是以 Ctrl + C 來終止迴圈,下次的範例會用另一種方式來終止)
#!/bin/bash
echo "按下 Ctrl + C 中斷…"
LENGTH=0
while :
do
echo -ne "\r["
sleep 0.2
while [ $LENGTH -le 10 ]
do
sleep 0.1
echo -n ">"
(( LENGTH++ ))
done
LENGTH=0
echo -en "\r "
done
看看結果,在沒按下Ctrl+C 時,他是不會停的:
第三種:輸入一文字檔,在迴圈中一次只讀取一行:
首先我們先準備我們要輸入的文字檔:『story.txt』,內容是:
再來是我們的範例程式,我們會讀取每一行,接著在每一行前面加上行號:
#!/bin/bash
echo -n "請輸入要讀取的文字檔名稱:"
read FILE_NAME
INDEX=1
while read line
do
echo "$INDEX: $line"
(( INDEX++ ))
done <$FILE_NAME
執行結果:
有沒有覺得很簡單阿!!就是這麼簡單!!
鐵人賽文章分享
上一篇 迴圈 while 的三個樣子
下一篇 與while相反的until